package base

import "fmt"

/**
Go中流程控制分三大类：条件判断，循环控制和无条件跳转
 */

func Test2_001() {
	x := 11
	if x > 10 {
		fmt.Println("x is greater than 10")
	} else {
		fmt.Println("x is less than 10")
	}
}

func Test2_002() {
	// Go的if还有一个强大的地方就是条件判断语句里面允许声明一个变量，这个变量的作用域只能在该条件逻辑块内

	// 计算获取值x,然后根据x返回的大小，判断是否大于10。
	if x := computedValue(); x > 10 {
		fmt.Println("x is greater than 10")
	} else {
		fmt.Println("x is less than 10")
	}

	//这个地方如果这样调用就编译出错了，因为x是条件里面的变量
	//fmt.Println(x)
}
func computedValue() int {
	return 1 + 10
}

func Test2_003() {
	integer := 10
	if integer == 3 {
		fmt.Println("The integer is equal to 3")
	} else if integer < 3 {
		fmt.Println("The integer is less than 3")
	} else {
		fmt.Println("The integer is greater than 3")
	}
}

func Test2_004() {
	//用goto跳转到必须在当前函数内定义的标签

	i := 0

Here: //这行的第一个词，以冒号结束作为标签
	{
		if i < 10 {
			println(i)
		} else {
			return
		}
	}

	i++
	goto Here //跳转到Here去
}

func Test2_005() {

}

func Test2_006() {

}

func Test2_007() {

}

func Test2_008() {

}

func Test2_009() {

}
